package com.csb.controller;

import com.csb.pojo.*;
import com.csb.service.ClassifyService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/classify")
public class ClassifyController {
    @Resource
    private ClassifyService classifyService;

    /**
     * 获取所有资产分类列表
     * @return
     */
    @RequestMapping("/init")
    public List<Classify> findAllClassifyInfo(Classify classify){
        // 创建Map,存储各种条件
        Map<String, Object> cond = new HashMap<>();
        // 存储条件查询的条件
        if (classify.getClassify() != null&&classify.getClassify().length()>0){
            // 资产分类
            cond.put("classify", classify.getClassify());
        }
        if (classify.getCdesc()!= null&&classify.getCdesc().length()>0){
            // 添加资产描述
            cond.put("cdesc", classify.getCdesc());
        }
        List<Classify> classifies = classifyService.findAllClassifyInfo(cond);
        // 获取所有资产分类列表
        return classifies;
    }

    /**
     * 根据资产分类信息修改
     * @param classify
     * @return
     */
    @RequestMapping("/modify")
    public String modifyClassify(Classify classify) {
        // 根据资产分类信息修改
        boolean bol = classifyService.modifyClassify(classify);
        // 判断
        if (bol) {
            return "1";
        } else {
            return "0";
        }
    }

    /**
     * 根据资产分类信息添加
     * @param classify
     * @return
     */
    @RequestMapping("/add")
    public String addClassify(Classify classify) {
        // 根据资产分类信息添加
        boolean bol = classifyService.saveClassify(classify);
        // 判断
        if (bol) {
            return "1";
        } else {
            return "0";
        }
    }

    /**
     * 根据资产分类id删除
     * @param id
     * @return
     */
    @RequestMapping("/del")
    public String deleteClassify(Integer id) {
        try {
            // 根据资产分类id删除
            boolean bol = classifyService.deleteClassify(id);
            // 判断
            if (bol) {
                return "1";
            } else {
                return "0";
            }
        } catch (Exception e) {
            e.printStackTrace();
            return "-1";
        }

    }

    /**
     * 根据资产分类id批量删除
     * @param ids
     * @return
     */
    @RequestMapping("/batchDel")
    public String batchDelClassify(String[] ids) {
        try {
            // 根据资产分类id删除
            boolean bol = classifyService.batchDelClassify(ids);
            // 判断
            if (bol) {
                return "1";
            } else {
                return "0";
            }
        } catch (Exception e) {
            e.printStackTrace();
            return "-1";
        }
    }

    /**
     * 获取资产分类占比数量
     * @return
     */
    @RequestMapping("/classifyTypesRate")
    public List<ClassifyTypesRate> classifyTypesRate(){
        return classifyService.getClassifyTypesRate();
    }


}
